Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow a zero timeout for g_obj_wait() #2904

Conversation

matt335672
Copy link
Member

At the moment, timeouts of -1 or 0 for g_obj_wait() both mean 'no timeout', i.e. wait forever. This commit changes a timeout of 0 to mean 'return immediately'. This is more consistent with poll() and WaitForMultipleObjects(), and can be used by the new encoder logic.

There are a very few places on xrdp where a timeout of 0 is currently specified to mean 'wait forever'. These are replaced with values of -1.

- Mostly base functions and utilities necessary to enable RFX
  Progressive
- Add more EGFX work & mode flags.
- Update encoder.
- Does not yet include caps determination to enable RFX progressive
  (yet).
- Update protocol constants
- Introduce functional EGFX caps.
- Prototype of RFX Progressive working.
- Update resizing to work with it.
- Refactoring
@matt335672
Copy link
Member Author

While doing this I've discovered the timer queue processing in chansrv can be significantly improved. I'll fix that in devel at some stage

@matt335672
Copy link
Member Author

Issue #2906 added about chansrv timer queue mentioned above.

BTW the FreeBSD CI failures above can be fixed by using a later FreeBSD (either by rebasing gfx_mainline_merge_work or cherry-picking 05c78bb)

@metalefty
Copy link
Member

Yes, FreeBSD 12 is EoL'd

@metalefty
Copy link
Member

@matt335672 Could you cherry-pick 05c78bb to gfx_mainline_merge_work?

At the moment, timeouts of -1 or 0 for g_obj_wait() both mean
'no timeout', i.e. wait forever. This commit changes a timeout of
0 to mean 'return immediately'. This is more consistent with poll()
and WaitForMultipleObjects(), and can be used by the new encoder
logic.

There are a very few places on xrdp where a timeout of 0 is currently
specified to mean 'wait forever'. These are replaced with values of
-1.
@matt335672 matt335672 force-pushed the g_obj_wait_allow_zero_timeout branch from db3aaec to 170b881 Compare January 5, 2024 17:02
@matt335672
Copy link
Member Author

matt335672 commented Jan 5, 2024

I've updated gfx_mainline_merge_work in the main repository to address the FreeBSD issue.

@Nexarian, @jsorg71 - can you update your local repositories?

@Nexarian
Copy link
Contributor

Nexarian commented Jan 7, 2024

Will update

@Nexarian
Copy link
Contributor

Nexarian commented Jan 7, 2024

This PR looks good to me, but for some reason I don't understand why the diff has changes in it that it shouldn't. This should just apply to the g_obj_wait changes? Right?

@Nexarian
Copy link
Contributor

Nexarian commented Jan 7, 2024

This is what you intended to change, correct? 353d76f

@Nexarian Nexarian mentioned this pull request Jan 7, 2024
@matt335672
Copy link
Member Author

I'll delete this now - @Nexarian has already merged it.

@matt335672 matt335672 closed this Jan 7, 2024
@matt335672 matt335672 deleted the g_obj_wait_allow_zero_timeout branch January 7, 2024 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants